#ifndef __arena_2dfood_h__
#define __arena_2dfood_h__

#include <string>
#include <vector>

#include "arena_base.h"

class Predictor_link;

class Arena_2dfood : public Arena_base
{
 public:
  Arena_2dfood();
  ~Arena_2dfood();

  float get_distance_to_food( void );

  void set_speed_x( float speed );
  void set_speed_y( float speed );
  void eat( float volume );

  boost::function<void(float)> set_speed_x_function( void );
  boost::function<void(float)> set_speed_y_function( void );
  boost::function<void(float)> eat_function( void );

  void update( float time );

  void reset( void );

  float *get_distance_to_food_p( void );
  float *get_distance_to_food_x_p( void );
  float *get_distance_to_food_y_p( void );

 private:
  float _distance_to_food_x;
  float _distance_to_food_y;
  float _distance_to_food;
  float _speed_x;
  float _speed_y;

  std::string get_state(void);

  void update_arena(void);
};

#endif
